#include <compare>
#include <format>
#include <iostream>
#include <vector>
// using namespace std::literals::string_view_literals;
using namespace std::string_view_literals;
struct OddsAndEvens {
  std::vector<int> odds;
  std::vector<int> evens;
};

OddsAndEvens separateArryay(const std::vector<int> &vec) {
  std::vector<int> odds, evens;
  for (int i : vec) {
    if (i % 2 == 1) {
      odds.push_back(i);
    } else {
      evens.push_back(i);
    }
  }
  return OddsAndEvens{.odds = odds, .evens = evens};
}

const std::string msg{"Test"};
const std::string &foo() { return msg; }

int main() {
  auto f1 = foo();
  const auto &f2 = foo();

  int i{123};
  auto p{&i};
  auto *p1{&i};
  const auto p2{&i};
  const auto *p3{&i};
  {
    auto a = {11};
    auto b = {11, 12};
  }
  {
    auto a{11};
    // auto b{11, 12};
    std::pair b{11, 12};
  }
  {
    std::vector c{"xxx", "yyy"};
    std::cout << typeid(c).name() << std::endl;
  }
  {
    std::string s{"0x16"};
    int x = std::stoi(s, 0, 0);
    std::cout << "x=" << x << std::endl;

    int y = std::stoi(s);
    std::cout << "y=" << y << std::endl;
  }
  { auto sv{"my string_view"sv}; }
  return 0;
}